package cn.dansj.test;

import cn.dansj.common.redis.RedisUtils;
import cn.dansj.common.utils.bean.CacheToken;
import cn.dansj.entity.User;
import cn.dansj.enums.GlobalEnv;

import java.util.Calendar;
import java.util.Date;

public class Common2 {
    public static final RedisUtils redisUtils = new RedisUtils(RedisUtils.createRedisTemplate("redis://localhost:8088/0","","Lq13^Nk*"));

    public static void main(String[] args) {

        User user = new User();
        user.setUsername("guest");
        user.setPassword("123456");
        user.setSequence("10002");
        CacheToken cacheToken = createToken(user);
//        redisUtils.expire(GlobalEnv.CacheTokenPrefix + cacheToken.getUuid(), -1);
        System.out.println("persist:" + GlobalEnv.CacheTokenPrefix + cacheToken.getUuid() + ", result:" + redisUtils.getRedisTemplate().persist(GlobalEnv.CacheTokenPrefix + cacheToken.getUuid()));
    }

    public static CacheToken createToken(User user) {
        //设置token的有效期
        Calendar instance = Calendar.getInstance();
        instance.setTime(new Date());
        int tokenExpireDays =GlobalEnv.TokenExpireDays;


        instance.add(Calendar.DATE, tokenExpireDays);

        //生成token信息
        CacheToken cacheToken = new CacheToken(user.getUsername(), user.getRole(), user.getSequence(), false);
        cacheToken.setPlatform("test");
        cacheToken.setAllowLoginFrom(user.getLoginFrom());
        cacheToken.setExpireTime(instance.getTime().getTime());
        cacheToken.setApiToken(user.getToken());

        addCacheToken(cacheToken);
        return cacheToken;
    }

    public static void addCacheToken(CacheToken cacheToken) {
        redisUtils.hmset(GlobalEnv.CacheTokenPrefix + cacheToken.getUuid(), cacheToken.toJSONObject(), cacheToken.getExpireTime().toDate());
    }
}
